package com.example.yupao.once;

import com.alibaba.excel.EasyExcel;
import org.apache.commons.lang3.StringUtils;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @Date 2024/6/17 16:00
 * @description: 导入星球用户到数据库
 * .
 * @Author LittleNight
 */
public class ImportXingQiuUser {

    public static void main(String[] args) {
        // 读取表格中的数据
        String fileName = "D:\\Java\\JAVA-CODE\\知识星球\\伙伴匹配系统\\yupao-backend-own\\src\\main\\resources\\testImportUser.xlsx";

        // 官方上的举例说明
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 同步读取会自动finish
        List<XingQiuTableUserInfo> userInfoList =  EasyExcel.read(fileName).head(XingQiuTableUserInfo.class).sheet().doReadSync();
        System.out.println("总数: " + userInfoList.size());

        // 处理一下列表数据, 去除重复的id
        Map<String, List<XingQiuTableUserInfo>> listMap = userInfoList.stream()
                // 过滤掉昵称为 null 的
                .filter(user -> StringUtils.isNotEmpty(user.getUsername()))
                // 收集的时候顺便分一下组, 按名字进行分组, 也就是名字一样的会到一组
                .collect(Collectors.groupingBy(XingQiuTableUserInfo -> XingQiuTableUserInfo.getUsername()));


        // 遍历 map 一定要会
        for (Map.Entry<String, List<XingQiuTableUserInfo>> entry : listMap.entrySet()) {
            // value 大于1, 说明有重复的
            if(entry.getValue().size() > 1) {
                System.out.println("重复昵称: " + entry.getKey());
            }
        }

        // 得到所有的key
        System.out.println("不重复的总共数据 = " + listMap.keySet().size());
    }
}
